package vip.xiaonuo.common.mvc.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import vip.xiaonuo.common.page.PageQuery;

/**
 * @author zjt
 * @description
 * @since 2025/4/1 16:29
 */
public interface BaseService<Bo, Vo, Q extends PageQuery> {

    /**
     * 分页查询
     *
     * @param queryBo
     * @return
     */
    Page<Vo> pageList(Q queryBo);

    /**
     * 查询详情
     *
     * @param id
     * @return
     */
    Vo selectVoById(Long id);

    /**
     * 插入一个新的业务对象。
     *
     * @param bo 业务对象
     */
    void insert(Bo bo);

    /**
     * 更新一个已存在的业务对象。
     *
     * @param bo 业务对象
     */
    void update(Bo bo);

    /**
     * 根据主键 ID 删除一个业务对象。
     *
     * @param id 主键 ID
     */
    void delete(Long id);
}
